package review.Day_0404;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author zxc
 * @date 2023/04/04 20:07
 **/
public class Solution03 {
    // 思路 ：即，使用队列，来存储最新ping请求3000ms内的所有ping请求
    Queue<Integer> queue;
    public Solution03() {
        // 对于队列进行初始化操作 ：
        queue = new LinkedList<>();
    }
    // 获取最新ping请求3000ms内的所有ping请求数量
    public int ping(int t) {
        // 当前ping请求t，加入到队列中 ：
        queue.offer(t);
        // 需要注意的是，存在隐形条件 ：即，该存储所有ping请求的队列是单调定增的;
        // 逐个遍历队列中所有元素，判断其是否符合元素;
        while(queue.peek() < t - 3000){
            // 由于队列中必然会存在元素，所以queue.peek()方法必然能够获取到值
            queue.poll();
        }
        // 直接返回队列中所剩余的ping请求数即可;
        return queue.size();
    }
}
